package com.authine.cloudpivot.web.api.service;


import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

public interface AtsService {

    Map<String,String> getAtsMap(Map<String, String> map);

    Integer updateDemandDetail(String demandDetailId, String idCode, String atsId);

    List<String> getWeeklyReport(LocalDateTime now);

    Integer updateWeeklyReport(List<Map<String, Object>> updateData);

    /**
     * @description: 校验其他表单是否有关联
     * @method: validateSchemaCode
     * @date: 2022/1/10 13:36
     * @author: zyj
     * @param ids
     * @param schemaCode
     */
    Map<String, List<String>> validateSchemaCode(List<String> ids, String schemaCode);

    /**
     * @description: ats调用关闭
     * @method: closeDemandDetail
     * @date: 2022/1/11 16:58
     * @author: zyj
     * @param id
     * @return: void
     */
    void closeDemandDetail(String id);

    /**
     * @description: ats调用通知
     * @method: addDemandDetail
     * @date: 2022/1/11 17:03
     * @author: zyj
     * @param id
     * @param count
     * @return: void
     */
    void addDemandDetail(String id, Integer count);

    /**
     * @description: 周报汇总
     * @method: updateWeeklySumReport
     * @date: 2022/3/22 4:06
     * @author: zyj
     * @param updateData
     * @return: void
     */
    void updateWeeklySumReport(List<Map<String, Object>> updateData);

    /**
     * @description: 日报数据
     * @method: saveWeeklyReportDetail
     * @date: 2022/3/31 17:13
     * @author: zyj
     * @param list
     * @return: void
     */
    void saveWeeklyReportDetail(List<Map<String, Object>> list);

    /**
     * @description: 查询该需求完成情况
     * @method: getFinishedById
     * @date: 2022/4/27 10:02
     * @author: zyj
     * @param id
     * @return: java.util.Map<java.lang.String, java.lang.Integer>
     */
    Map<String, Integer> getFinishedById(String id);

    /**
     * @description: 根据名字获取用户ID
     * @method: getUserIdByName
     * @date: 2022/4/27 17:27
     * @author: zyj
     * @param name
     * @return: java.lang.String
     */
    String getUserIdByName(String name);

    /**
     * @description: 查找进行中的项目
     * @method: findStartCount
     * @date: 2022/4/28 2:38
     * @author: zyj
     * @param parentId
     * @return: java.lang.Integer
     */
    Integer findStartCount(String parentId);

    /**
     * @description: 关闭招聘需求
     * @method: closeRecruitmentDemand
     * @date: 2022/4/28 2:42
     * @author: zyj
     * @param parentId
     * @return: void
     */
    void closeRecruitmentDemand(String parentId);

    /**
     * @description: 需要修改的周报先全部设置0
     * @method: updateAll
     * @date: 2022/5/31 15:16
     * @author: zyj
     * @param parse
     * @return: void
     */
    void updateAll(LocalDateTime parse);
}
